PSCI: Fix logic error to skip cache flushing
authorAndrew F. Davis <[email protected]>
Thu, 26 Jul 2018 19:00:32 +0000 (14:00 -0500)
committerAndrew F. Davis <[email protected]>
Thu, 26 Jul 2018 19:14:06 +0000 (14:14 -0500)
If either USE_COHERENT_MEM or HW_ASSISTED_COHERENCY being true
should cause us to not enter the ifdef block, then the logic
is not correct here. Posibly bad use of De Morgan's law?
Fix this.

Signed-off-by: Andrew F. Davis <[email protected]>
lib/psci/psci_common.c

index 59c9c6862bfb359ad0d79694eda60cae3e80eaee..ec74a8cdba49f9c3471a913ca4a1aadc66ba7b06 100644 (file)
@@ -267,7 +267,7 @@ static plat_local_state_t *psci_get_req_local_pwr_states(unsigned int pwrlvl,
 static plat_local_state_t get_non_cpu_pd_node_local_state(
                unsigned int parent_idx)
 {
-#if !USE_COHERENT_MEM || !HW_ASSISTED_COHERENCY
+#if !(USE_COHERENT_MEM || HW_ASSISTED_COHERENCY)
        flush_dcache_range(
                        (uintptr_t) &psci_non_cpu_pd_nodes[parent_idx],
                        sizeof(psci_non_cpu_pd_nodes[parent_idx]));
@@ -283,7 +283,7 @@ static void set_non_cpu_pd_node_local_state(unsigned int parent_idx,
                plat_local_state_t state)
 {
        psci_non_cpu_pd_nodes[parent_idx].local_state = state;
-#if !USE_COHERENT_MEM || !HW_ASSISTED_COHERENCY
+#if !(USE_COHERENT_MEM || HW_ASSISTED_COHERENCY)
        flush_dcache_range(
                        (uintptr_t) &psci_non_cpu_pd_nodes[parent_idx],
                        sizeof(psci_non_cpu_pd_nodes[parent_idx]));